Hardware/software Partitioning Research Abstract
نویسندگان
چکیده
In embedded systems, most functionality can be implemented either by special-purpose hardware or by a software program running on a general-purpose processor. Hardware/software partitioning is concerned with deciding which functions should be implemented in hardware and which ones in software. It aims at finding an optimal trade-off between conflicting requirements on performance, power, costs, etc. Therefore, partitioning is a tough but very important problem. The main characteristics of our partitioning model are the following. We consider one software context (i.e. one general-purpose processor) and one hardware context (e.g. one FPGA). Software implementation of a component is associated with a software cost, which may be e.g. the running time of the component if implemented in software. Hardware implementation of a component is associated with a hardware cost. If two communicating components are mapped to different contexts, this incurs a communication cost. If two components are mapped to the same context, then the communication between them is neglected. The software cost of a partition is the sum of the software costs of the components that are mapped to software. Similarly, its hardware cost is the sum of the hardware costs of the components that are mapped to hardware. Its communication cost is the sum of the communication costs between those components that are mapped to different contexts. While this model is simplified and constrained in several aspects, it captures the essence of hardware/software partitioning, which lies in the simultaneous optimization of several conflicting cost factors. We have defined a formal graph-theoretic model for this problem, in which the behavioral components of the system are modeled with the vertices, and their communication with the edges of a graph, and proven its NP-completeness in the general case. We also managed to identify some efficiently solvable special cases. In particular, if communication is the only significant cost factor, then the problem can be solved optimally in polynomial time. On the other hand, if communication can be neglected, then the problem is still NP-complete, but pseudo-polynomial and approximation algorithms are known for this special case. We have developed several algorithms for solving the partitioning problem. We formulated the partitioning problem as an integer linear program (ILP) which can be solved by standard ILP solvers. This method yields the exact optimum, and works in acceptable time for graphs with up to 300 nodes. We also developed an algorithm based on branch-and-bound that can solve the partitioning problem …
منابع مشابه
The Application of Computerized Algorithms in the Design Method of Software-hardware Dual-track Partitioning in an Embedded System Abstract
It has been proved that the hardware/software partitioning problem is NP-hard. Currently we have tried a variety of computerized algorithms to resolve it, which can be divided into two major categories: accurate algorithms and heuristic algorithms. This paper will discuss accurate algorithms and heuristic algorithms respectively. Accurate algorithms take the example of a greedy algorithm. It ab...
متن کاملAspects of system modelling in Hardware/Software partitioning
Peter Voigt Knudsen and Jan Madsen Department of Information Technology, Technical University of Denmark [email protected], [email protected] Abstract This paper addresses fundamental aspects of system modelling and partitioning algorithms in the area of Hardware/Software Codesign. Three basic system models for partitioning are presented and the consequences of partitioning according to each of these a...
متن کاملModel-Driven Performance Evaluation and Formal Verification for Multi-level Embedded System Design
The design methodology of an embedded system should start with a system-level partitioning dividing functions into hardware and software. However, since this partitioning decision is taken at a high level of abstraction, we propose regularly validating the selected partitioning during software development. The paper introduces a new model-based engineering process with a supporting toolkit, fir...
متن کاملUML-based Specifications of an Embedded System oriented to HW/SW partitioning: a case study
Abstract The Unified Modelling Language (UML) is a language for specifying, visualizing, constructing, and documenting the artefacts of software systems, as well as for modelling business and other non-software systems. The UML represents a collection of best engineering practices that succeeded in modelling large and complex systems; it is interesting to envision its extension for specificatio...
متن کاملScheduling Driven Partitioning of Heterogeneous Embedded Systems
In this paper we present an algorithm for system level hardware/software partitioning of heterogeneous embedded systems. The system is represented as an abstract graph which captures both data-flow and the flow of control. Given an architecture consisting of several processors, ASICs and shared busses, our partitioning algorithm finds the partitioning with the smallest hardware cost and is able...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2003